package com.decorate.decorate;

import java.io.BufferedInputStream;
import java.io.FilterInputStream;

public class Test {
    public static void main(String[] args) {
        //首先要再理一下思路，
        //继承自Decorator的类都属于是装饰者
        //继承自Drink的类都属于是被装饰者，
        // 这里装饰者就包括两种了，coffee这一类的纯咖啡，还有就是添加了小料的咖啡

        //先搞出来一个咖啡，让后开始装饰他
        LongBlackCoffee longBlackCoffee =  new LongBlackCoffee();
        System.out.println(longBlackCoffee.getDes()+" 【花费】: "+longBlackCoffee.cost());
        //给这个咖啡进行包装，包一个 巧克力的小料
        Chocolate chocolate = new Chocolate(longBlackCoffee);
        System.out.println(chocolate.getDes()+" 【花费】: "+chocolate.cost());
        //再将 巧克力 + coffee这个对象 作为一个被包装类，再让别的小料对他进行包装
        Milk milk = new Milk(chocolate);
        System.out.println(milk.getDes()+" 【花费】: "+milk.cost());
    }
}
